home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / utils / vector21 / slangraf.txt < prev    next >
Text File  |  1994-10-30  |  6KB  |  181 lines

  1. /*
  2. █████████████████████████████████████████████████████████████████████████████
  3. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  4. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ KNOW-HOW.SLANG.GRAPHICS ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  5. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  6. █████████████████████████████████████████████████████████████████████████████
  7.  
  8. This text contain complete description of KNOW_HOW.SLANG.GRAPHICS 5.0x.
  9. In addition to KNOW_HOW.SLANG and KNOW_HOW.GRAPHICS power it provide the
  10. following features:
  11.     1. KNOW-HOW.SLANG.GRAPHICS is the BASIC with access to drawing tools of
  12.        current product (BGI, GDI ...). It provide to user the possibility to
  13.        load graphical resourses (DOS or Windows, or other if he add some code)
  14.        and interprete them in run-time. There are very many applications
  15.        of this tool, like run-time changeable GUI.
  16.     2. Maketing (without stage of compilation, KNOW-HOW.VECTOR, the
  17.        ready-to-use product of this type, is included) of BGI, GDI and so on
  18.        applications, vector drawing tools.
  19.     3. Together with BASIC math. functions it could also be used for data
  20.        plotting, spreadsheets and so on.
  21.  
  22. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  23. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Functions░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  24. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  25. 5.0x version supports following functions:
  26.  
  27. line(x1,y1,x2,y2)
  28. lineto(x2,y2)
  29. moveto(x1,y1)
  30. ellipse(x,y,stangle,endangle,xr,yr)
  31. rectangle(l,t,r,b)
  32. poly(numpoints, POLY), as poly(4, 100,100, 200,200, 200,100, 100,100)
  33. text(x,y,string)
  34. color(color)
  35. set_rgb(r,g,b)  // set RGB color
  36. style(fillstyle, fillcolor)
  37. textsize(mx,dx,my,dy)
  38. font("BGI font file name")
  39. fill(1 or 0) - fill or not closed figures
  40. zoom(zx, zy)
  41. addzoom(zx, zy)
  42. scroll(x, y)
  43. addscroll(x, y)
  44. rotate(alpha, x, y)
  45. setline(width)
  46. mirror(x), set mirror, all output will be reflected
  47. rot_on         // add rotations to stack for complex rotations
  48. rot_off        // flash stack of rotations
  49. endrotate      // pop last rotation
  50.  
  51.  
  52. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  53. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ FILES ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  54. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  55. ▐▐▐▐▐▐▐ Files OOPIC.H and OOPIC.CPP contains class, derived from Slang and
  56. KH_Paint.
  57. ▐▐▐▐▐▐▐ Files USER1.INC and USERLANG.INC are modified to define new operators:
  58.         { "line", LINE            },
  59.         { "lineto", LINETO        },
  60.         { "ellipse", ELLIPSE      },
  61.         { "rectangle", RECTANGLE  },
  62.         { "poly",  POLY           },
  63.         { "text", TXT             },
  64.         { "moveto", MOVETO        },
  65.         { "color", SETCOLOR       },
  66.         { "set_rgb", SETCOLOR_RGB },
  67.         { "style", SETFILLSTYLE   },
  68.         { "textsize", SETTEXTSIZE },
  69.         { "font", SETFONT         },
  70.         { "fill", SETFILL         },
  71.         { "zoom", ZOOM            },
  72.         { "addzoom", ADDZOOM      },
  73.         { "scroll", SCROLL        },
  74.         { "addscroll", ADDSCROLL  },
  75.         { "rotate", ROTATE        },
  76.         { "setline", SETLINE      },
  77.         { "mirror", MIRROR        },
  78.         { "rot_on", ROTATE_ON     },
  79.         { "rot_off", ROTATE_OFF   },
  80.         { "endrotate", ENDROTATE  },
  81. in USERLANG and:
  82.     , LINE = USER + 1, LINETO, ELLIPSE, RECTANGLE, POLY, TXT, MOVETO,
  83.        SETCOLOR, SETCOLOR_RGB, SETFILLSTYLE, SETTEXTSIZE,
  84.        SETFONT, SETFILL,
  85.        ZOOM, ADDZOOM, SCROLL, ADDSCROLL, ROTATE, SETLINE, MIRROR,
  86.        ROTATE_ON, ROTATE_OFF, ENDROTATE
  87. in USER1.INC
  88.  
  89. Defines are set in Options/Compiler/Code Generation.
  90. Example, DOS:
  91.  
  92. #include <conio.h>     // only for interruption on key pressed **************
  93. class Demo : public OOPic
  94.     {
  95.     virtual void terminate();  // User-defined terminator (ESC and so on)
  96.     };
  97. /////////////
  98. void Demo::terminate()
  99.     {
  100.     if(kbhit())
  101.     {
  102.     getch();
  103.     if(kbhit())
  104.         getch();
  105.     serror(23);
  106.     }
  107.     }
  108.  
  109. void main()
  110.     {
  111.     int gdriver = DETECT, gmode;
  112.     initgraph(&gdriver, &gmode, "");
  113.  
  114.     Demo* basic = new Demo();
  115. //    basic->basic(basic->load_program("oopic.vec"));
  116.     char s[80] = "mirror(0,0)\r\nrotate(0,0,0)\r\nleft=10\r\ntop=10\r\nright=200\r\nbottom=200";
  117.     basic->basic(s);
  118.     char s1[80] = "color(15):style(1,7):header=\"Hello\"font(\"litt.chr\"):textsize(1,1,1,1)";
  119.     basic->basic(s1);
  120.     basic->basic(basic->load_program("window.vec"));
  121.     delete basic;
  122.  
  123.     closegraph();
  124.     }
  125.  
  126. Example, Windows:
  127. // This example demonstrates output to OWL window. If necessary,
  128. // any other Windows library could be used.
  129.  
  130. #include <owl.h>
  131. class Demo : public OOPic
  132.     {
  133.     public:
  134.     void demo();
  135.     };
  136. ///////////////////
  137. void Demo::demo()
  138.     {
  139.     basic(load_program("oopic.vec"));
  140.     }
  141. class TMyApp : public TApplication
  142. {
  143. public:
  144.   TMyApp(LPSTR AName, HINSTANCE hInstance, HINSTANCE hPrevInstance,
  145.     LPSTR lpCmdLine, int nCmdShow)
  146.     : TApplication(AName, hInstance, hPrevInstance, lpCmdLine, nCmdShow) {};
  147.   virtual void InitMainWindow();
  148. };
  149.  
  150. _CLASSDEF(TMyWindow)
  151. class TMyWindow : public TWindow, public Demo
  152. {
  153. public:
  154.   TMyWindow(PTWindowsObject AParent, LPSTR ATitle)
  155.     : TWindow(AParent, ATitle), Demo() { DC = GetDC(HWindow); }
  156.   virtual void WMLButtonDown(RTMessage Msg)
  157.     = [WM_FIRST + WM_LBUTTONDOWN];
  158. };
  159.  
  160. void TMyWindow::WMLButtonDown(RTMessage)
  161.     {
  162.     DC = GetDC(HWindow);
  163.     demo();
  164.     }
  165.  
  166. void TMyApp::InitMainWindow()
  167. {
  168.   MainWindow = new TMyWindow(NULL, Name);
  169. }
  170.  
  171. int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  172.   LPSTR lpCmdLine, int nCmdShow)
  173. {
  174.   TMyApp MyApp("Sample KNOW-HOW.GRAPHICS Program", hInstance, hPrevInstance,
  175.            lpCmdLine, nCmdShow);
  176.   MyApp.Run();
  177.   return MyApp.Status;
  178. }
  179.  
  180.  
  181.